home *** CD-ROM | disk | FTP | other *** search
/ SunSoft Catalyst CDWARE 1996 May to August / Catalyst CDWARE 1996 May to August.iso / .products / Apogee / _text / kapinfo.txt < prev    next >
Text File  |  1996-02-16  |  6KB  |  161 lines

  1. *****            KAP PREPROCESSORS FOR APOGEE SPARC COMPILERS             *****
  2. *****                         PRODUCT INFORMATION                         *****
  3.  
  4. APOGEE PRODUCTS
  5.  
  6. Apogee currently sells highly optimizing Apogee-C and Apogee-FORTRAN
  7. compilers as well as the KAP-C and KAP-FORTRAN preprocessors from Kuck &
  8. Associates.  The KAP preprocessors are available in single processor and
  9. auto-parallelizing (MP) versions.  Together, the Apogee Compilers and KAP
  10. preprocessors yield maximum performance from your code.
  11.  
  12. KAP preprocessors are software tools that make C and FORTRAN programs run
  13. faster.  The KAP products are integrated with the Apogee-C and Apogee-FORTRAN
  14. compilers, and their optimizations are tuned to complement those performed by
  15. the compilers. They are supplied with the compilers as separately priced
  16. options.
  17.  
  18. SUPERIOR OPTIMIZATIONS
  19.  
  20. The KAP preprocessors use advanced, proven techniques that take full advantage
  21. of SPARC microprocessors and chache subsystems.  KAP achieves performance by
  22. using memory management optimizations that reduce traffic between main memory
  23. and cache, and between the cache and the processor.  KAP's strong loop oriented
  24. optimizations, such as loop unrolling, loop interchanging and strip mining,
  25. maximize use of the SPARC processor's features.
  26.  
  27. POWERFUL TOOL
  28.  
  29. KAP automatically restructures code to speed up programs.  For additional 
  30. performance, users can tune programs using KAP's large set of command-line 
  31. options, directives and assertions.  KAP provides users with a special listing 
  32. file that identifies where code can be modified to achieve even greater speed.
  33.  
  34. MULTIPROCESSOR PARALLELISM
  35.  
  36. Under Solaris 2, the KAP MP products automatically transform serial code into
  37. parallel code to make programs run faster.  KAP detects inherent parallelism
  38. in a program and determines if the program will benefit from parallelization on
  39. the target SPARC system.  If so, KAP automatically translates appropriate
  40. constructs into subroutines that use a parallel support library that utilizes
  41. Solaris 2 threads to invoke parallel execution.  The user is also able to
  42. explicitly direct KAP to parallelize code segments through the use of Parallel
  43. Computing Forum (PCF) directives.  These techniques are effective at improving
  44. execution times on multiprocessor systems.
  45.  
  46. PROGRAMS WHICH BENEFIT FROM KAP
  47.  
  48. On single and multiprocessor workstations, KAP's optimizations are most likely 
  49. to improve performance of C and FORTRAN programs that:
  50.  
  51.     use significant computation time
  52.  
  53.     have loop nests that use many local arrays
  54.  
  55.     use a data set whose total size is larger than the cache of the
  56.     machine.  Programs where the portion of each array used is larger than
  57.     the cache will especially benefit.
  58.  
  59.     have significant data reuse within a loop nest.  For example, KAP
  60.     speeds up matrix multiplication significantly because it has
  61.     2-dimensional data used inside a 3-dimensional loop nest.
  62.  
  63.     have large loop iterations
  64.  
  65.     are inherently parallel
  66.  
  67.     have minimal data communication between iterations.
  68.  
  69. HOW KAP WORKS
  70.  
  71. KAP is a source-to-source preprocessor.  The KAP scanner recognizes C or
  72. FORTRAN source code, including ANSI C and K&R  C.  KAP's optimizer then
  73. analyzes the code and automatically performs optimizations for good code
  74. generation.  The restructured source code is then ready for compilation by the
  75. Apogee compiler.
  76.  
  77. OPTIMIZATIONS
  78.  
  79. The KAP optimizer provides automatic performance improvements for C and FORTRAN
  80. programs on both single and multiprocessor computers. Results from industry-
  81. standard benchmark suites show the power of KAP's optimizations. More
  82. importantly, KAP is designed to improve performance across a broad range of
  83. real world application programs. The performance improvement users can expect
  84. from KAP depends on the type of work being done in a particular program, the
  85. level of optimization that already exists in the program and the style in which
  86. the program is written.
  87.  
  88. GLOBAL SCALAR OPTIMIZATION
  89.  
  90. *    Lifetime analysis
  91. *    Dead code elimination
  92. *    Unreachable code elimination
  93. *    Forward/backward substitution
  94. *    Induction variable recognition
  95. *    User temporary recognition
  96. *    Constant expression evaluation
  97. *    Arithmetic expression simplification
  98. *    Common sub-expression elimination
  99. *    IF loop to DO loop translation
  100. *    IF loop to WHILE loop translation
  101. *    WHILE to FOR loop translation
  102. *    Loop invariant IF floating
  103. *    IFs transformed to intrinsic calls
  104. *    Removal of zero trip enforcing IFs
  105. *    Floating invariant code from loops
  106. *    Code scheduling
  107. *    Increased register reuse
  108. *    I/O strength reduction
  109.  
  110. ADVANCED MEMORY MANAGEMENT
  111.  
  112. *    Increased cache line utilization
  113. *    Reduced intra-cache interference
  114. *    Reduce inter-cache interference
  115. *    Increased operand locality
  116.  
  117. COMPREHENSIVE INTERPROCEDURAL ANALYSIS
  118.  
  119. *    Inline expansion of routines
  120. *    Inlining of routines from libraries
  121. *    Automatic or manual inlining control
  122. *    Call site optimization without inlining
  123.  
  124. STRONG LOOP ORIENTED TRANSFORMATION
  125.  
  126. *    Uses control/dependence graphs
  127. *    Language independent
  128. *    Optimizes array and record references
  129. *    Pointer disambiguation
  130. *    Extensive reduction recognition
  131. *    Controlled change in round-off error
  132. *    Loop distribution
  133. *    Loop fusion
  134. *    Loop peeling
  135. *    Loop unrolling
  136. *    Loop rerolling
  137. *    Strip mining
  138. *    Loop interchange
  139. *    Scalar expansion
  140. *    Array expansion
  141. *    Straightening linearized subscripts
  142. *    Statement reordering
  143.  
  144. EXTENSIVE AUTOMATIC PARALLELIZATION
  145.  
  146. *    Classification of scalars and array objects as shared, private, by
  147.     value, last value, or reduction
  148. *    Increased granularity
  149. *    Reduced fork/join frequency
  150. *    Reduced synchronization frequency
  151. *    Workload-based parallelization
  152.  
  153.  
  154. FOR MORE INFORMATION, CONTACT APOGEE SOFTWARE, INC. AT:
  155. *******************************************************************************
  156. Apogee Software, Inc.                Tel.    (800) 854-6705 US only
  157. 1901 S. Bascom Ave., Suite 325                (408) 369-9001
  158. Campbell, CA  95008-2207            Fax.    (408) 369-9018
  159. USA                        Email.    info@apogee.com
  160. *******************************************************************************
  161.